/*
 * Copyright 2003-2012 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package cn.edu.tsinghua.cic.ccss.dto;

import java.util.Date;

import org.forten.core.dto.GeneralDto;
import org.forten.dataio.excel.model.ExportCellDef;
import org.forten.dataio.excel.model.ExportCellDef.ExportCellDataType;
import org.forten.dataio.excel.model.WorkbookDef;

/**
 * 
 * 
 * @author <a href="mailto:du_yi@bbn.cn">Duyi</a>
 * @since 2012-5-14
 */
@WorkbookDef(headText = { "课程号", "课程名称", "课程状态", "上课时间", "上课时间描述", "上课地点",
		"课程简介", "课程类型", "上课教师姓名", "上课教师简介", "班主任姓名", "班主任邮箱", "班主任手机号码",
		"其他说明", "课容量", "已选课人数", "学分", "开始选课时间", "选课结束时间", "短信是否已发送", "邮件是否已发送",
		"备注" })
public class CourseDto4Export implements GeneralDto {
	private static final long serialVersionUID = 6374527506658736562L;

	@ExportCellDef(colNum = 0)
	private String num; // 课程号
	@ExportCellDef(colNum = 1)
	private String name;// 课程名称
	@ExportCellDef(colNum = 2)
	private String state;// 课程状态
	@ExportCellDef(colNum = 3, dataType = ExportCellDataType.DATETIME)
	private Date teachTime;// 上课时间
	@ExportCellDef(colNum = 4)
	private String teachTimeDescription;// 上课时间描述
	@ExportCellDef(colNum = 5)
	private String classroom;// 上课地点
	@ExportCellDef(colNum = 6)
	private String courseInfo;// 课程简介
	@ExportCellDef(colNum = 7)
	private String type;// 课程类型
	@ExportCellDef(colNum = 8)
	private String teacherName;// 上课教师姓名
	@ExportCellDef(colNum = 9)
	private String teacherInfo;// 上课教师简介
	@ExportCellDef(colNum = 10)
	private String headTeacherName;// 班主任姓名
	@ExportCellDef(colNum = 11)
	private String headTeacherEmail;// 班主任邮箱
	@ExportCellDef(colNum = 12)
	private String headTeacherPhone;// 班主任手机号码
	@ExportCellDef(colNum = 13)
	private String otherInfo;// 其他说明
	@ExportCellDef(colNum = 14, dataType = ExportCellDataType.NUMBER)
	private int classCapacity;// 课容量
	@ExportCellDef(colNum = 15, dataType = ExportCellDataType.NUMBER)
	private int classChosenNum;// 已选课人数
	@ExportCellDef(colNum = 16, dataType = ExportCellDataType.NUMBER)
	private int credit;// 学分
	@ExportCellDef(colNum = 17, dataType = ExportCellDataType.DATETIME)
	private Date startTimeChoose;// 开始选课时间
	@ExportCellDef(colNum = 18, dataType = ExportCellDataType.DATETIME)
	private Date endTimeChoose;// 选课结束时间
	@ExportCellDef(colNum = 19)
	private String sendMessageFlag;// 短信息是否已发送
	@ExportCellDef(colNum = 20)
	private String sendEmailFlag;// 邮件是否已方式
	@ExportCellDef(colNum = 21)
	private String memo;// 备注

	/**
	 * @return the num
	 */
	public String getNum() {
		return num;
	}

	/**
	 * @param num
	 *            the num to set
	 */
	public void setNum(String num) {
		this.num = num;
	}

	/**
	 * @return the name
	 */
	public String getName() {
		return name;
	}

	/**
	 * @param name
	 *            the name to set
	 */
	public void setName(String name) {
		this.name = name;
	}

	/**
	 * @return the state
	 */
	public String getState() {
		return state;
	}

	/**
	 * @param state
	 *            the state to set
	 */
	public void setState(String state) {
		this.state = state;
	}

	/**
	 * @return the teachTime
	 */
	public Date getTeachTime() {
		return teachTime;
	}

	/**
	 * @param teachTime
	 *            the teachTime to set
	 */
	public void setTeachTime(Date teachTime) {
		this.teachTime = teachTime;
	}

	/**
	 * @return the teachTimeDescription
	 */
	public String getTeachTimeDescription() {
		return teachTimeDescription;
	}

	/**
	 * @param teachTimeDescription
	 *            the teachTimeDescription to set
	 */
	public void setTeachTimeDescription(String teachTimeDescription) {
		this.teachTimeDescription = teachTimeDescription;
	}

	/**
	 * @return the classroom
	 */
	public String getClassroom() {
		return classroom;
	}

	/**
	 * @param classroom
	 *            the classroom to set
	 */
	public void setClassroom(String classroom) {
		this.classroom = classroom;
	}

	/**
	 * @return the courseInfo
	 */
	public String getCourseInfo() {
		return courseInfo;
	}

	/**
	 * @param courseInfo
	 *            the courseInfo to set
	 */
	public void setCourseInfo(String courseInfo) {
		this.courseInfo = courseInfo;
	}

	/**
	 * @return the type
	 */
	public String getType() {
		return type;
	}

	/**
	 * @param type
	 *            the type to set
	 */
	public void setType(String type) {
		this.type = type;
	}

	/**
	 * @return the teacherName
	 */
	public String getTeacherName() {
		return teacherName;
	}

	/**
	 * @param teacherName
	 *            the teacherName to set
	 */
	public void setTeacherName(String teacherName) {
		this.teacherName = teacherName;
	}

	/**
	 * @return the teacherInfo
	 */
	public String getTeacherInfo() {
		return teacherInfo;
	}

	/**
	 * @param teacherInfo
	 *            the teacherInfo to set
	 */
	public void setTeacherInfo(String teacherInfo) {
		this.teacherInfo = teacherInfo;
	}

	/**
	 * @return the headTeacherName
	 */
	public String getHeadTeacherName() {
		return headTeacherName;
	}

	/**
	 * @param headTeacherName
	 *            the headTeacherName to set
	 */
	public void setHeadTeacherName(String headTeacherName) {
		this.headTeacherName = headTeacherName;
	}

	/**
	 * @return the headTeacherEmail
	 */
	public String getHeadTeacherEmail() {
		return headTeacherEmail;
	}

	/**
	 * @param headTeacherEmail
	 *            the headTeacherEmail to set
	 */
	public void setHeadTeacherEmail(String headTeacherEmail) {
		this.headTeacherEmail = headTeacherEmail;
	}

	/**
	 * @return the headTeacherPhone
	 */
	public String getHeadTeacherPhone() {
		return headTeacherPhone;
	}

	/**
	 * @param headTeacherPhone
	 *            the headTeacherPhone to set
	 */
	public void setHeadTeacherPhone(String headTeacherPhone) {
		this.headTeacherPhone = headTeacherPhone;
	}

	/**
	 * @return the otherInfo
	 */
	public String getOtherInfo() {
		return otherInfo;
	}

	/**
	 * @param otherInfo
	 *            the otherInfo to set
	 */
	public void setOtherInfo(String otherInfo) {
		this.otherInfo = otherInfo;
	}

	/**
	 * @return the classCapacity
	 */
	public int getClassCapacity() {
		return classCapacity;
	}

	/**
	 * @param classCapacity
	 *            the classCapacity to set
	 */
	public void setClassCapacity(int classCapacity) {
		this.classCapacity = classCapacity;
	}

	/**
	 * @return the classChosenNum
	 */
	public int getClassChosenNum() {
		return classChosenNum;
	}

	/**
	 * @param classChosenNum
	 *            the classChosenNum to set
	 */
	public void setClassChosenNum(int classChosenNum) {
		this.classChosenNum = classChosenNum;
	}

	/**
	 * @return the credit
	 */
	public int getCredit() {
		return credit;
	}

	/**
	 * @param credit
	 *            the credit to set
	 */
	public void setCredit(int credit) {
		this.credit = credit;
	}

	/**
	 * @return the startTimeChoose
	 */
	public Date getStartTimeChoose() {
		return startTimeChoose;
	}

	/**
	 * @param startTimeChoose
	 *            the startTimeChoose to set
	 */
	public void setStartTimeChoose(Date startTimeChoose) {
		this.startTimeChoose = startTimeChoose;
	}

	/**
	 * @return the endTimeChoose
	 */
	public Date getEndTimeChoose() {
		return endTimeChoose;
	}

	/**
	 * @param endTimeChoose
	 *            the endTimeChoose to set
	 */
	public void setEndTimeChoose(Date endTimeChoose) {
		this.endTimeChoose = endTimeChoose;
	}

	/**
	 * @return the sendMessageFlag
	 */
	public String getSendMessageFlag() {
		return sendMessageFlag;
	}

	/**
	 * @param sendMessageFlag
	 *            the sendMessageFlag to set
	 */
	public void setSendMessageFlag(String sendMessageFlag) {
		this.sendMessageFlag = sendMessageFlag;
	}

	/**
	 * @return the sendEmailFlag
	 */
	public String getSendEmailFlag() {
		return sendEmailFlag;
	}

	/**
	 * @param sendEmailFlag
	 *            the sendEmailFlag to set
	 */
	public void setSendEmailFlag(String sendEmailFlag) {
		this.sendEmailFlag = sendEmailFlag;
	}

	/**
	 * @return the memo
	 */
	public String getMemo() {
		return memo;
	}

	/**
	 * @param memo
	 *            the memo to set
	 */
	public void setMemo(String memo) {
		this.memo = memo;
	}
}
